gusucode.com > 7波段参数均衡器源码程序 > 7波段参数均衡器源码程序/code/Parametric EQ/ParametricEQ.m

    function varargout = ParametricEQ(varargin)


% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @ParametricEQ_OpeningFcn, ...
                   'gui_OutputFcn',  @ParametricEQ_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before ParametricEQ is made visible.
function ParametricEQ_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;
set(gcf,'Name','Parametric Equalizer');
setappdata(handles.yup,'y',20);
reset_Callback(hObject, eventdata, handles);

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes ParametricEQ wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = ParametricEQ_OutputFcn(hObject, eventdata, handles) 
varargout{1} = handles.output;


% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)
if get(handles.fc1,'Value')==1
    set(hObject,'SliderStep',[0.0001 0.1]);
    set(hObject,'Max',20000);
    set(hObject,'SliderStep',[0.0001 0.1]);
    set(hObject,'Min',20);
    Val1 = 0.1*round(10*get(hObject, 'Value'));
    setappdata(hObject,'fcVal1',Val1);
end
if get(handles.g1,'Value')==1
    set(hObject,'SliderStep',[0.01 0.1]);
    set(hObject,'Max',15);
    set(hObject,'Min',-15);
    Val1 = 0.1*round(10*get(hObject, 'Value'));
    setappdata(hObject,'gVal1',Val1);
end
if get(handles.q1,'Value')==1
    set(hObject,'SliderStep',[0.01 0.1]);
    set(hObject,'Max',10);
    set(hObject,'Min',0.1);
    Val1 = 0.1*round(10*get(hObject, 'Value'));
    setappdata(hObject,'qVal1',Val1);
end
set(handles.val1,'String',Val1);
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function slider1_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end

% --- Executes on slider movement.
function slider2_Callback(hObject, eventdata, handles)
if get(handles.fc2,'Value')==1
    set(hObject,'SliderStep',[0.0001 0.1]);
    set(hObject,'Max',20000);
    set(hObject,'Min',20);
    Val2= round(get(hObject, 'Value'));
    setappdata(hObject,'fcVal2',Val2);
end
if get(handles.g2,'Value')==1
    set(hObject,'SliderStep',[0.01 0.1]);
    set(hObject,'Max',15);
    set(hObject,'Min',-15);
    Val2 = 0.1*round(10*get(hObject, 'Value'));
    setappdata(hObject,'gVal2',Val2);
end
if get(handles.q2,'Value')==1
    set(hObject,'SliderStep',[0.01 0.1]);
    set(hObject,'Max',10);
    set(hObject,'Min',0.1);
    Val2 = 0.1*round(10*get(hObject, 'Value'));
    setappdata(hObject,'qVal2',Val2);
end
set(handles.val2,'String',Val2);
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function slider2_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end

% --- Executes on slider movement.
function slider3_Callback(hObject, eventdata, handles)
if get(handles.fc3,'Value')==1
    set(hObject,'SliderStep',[0.0001 0.1]);
    set(hObject,'Max',20000);
    set(hObject,'Min',20);
    Val3 = round(get(hObject, 'Value'));
    setappdata(hObject,'fcVal3',Val3);
end
if get(handles.g3,'Value')==1
    set(hObject,'SliderStep',[0.01 0.1]);
    set(hObject,'Max',15);
    set(hObject,'Min',-15);
    Val3 = 0.1*round(10*get(hObject, 'Value'));
    setappdata(hObject,'gVal3',Val3);
end
if get(handles.q3,'Value')==1
    set(hObject,'SliderStep',[0.01 0.1]);
    set(hObject,'Max',10);
    set(hObject,'Min',0.1);
    Val3 = 0.1*round(10*get(hObject, 'Value'));
    setappdata(hObject,'qVal3',Val3);
end
set(handles.val3,'String',Val3);
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function slider3_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end

% --- Executes on slider movement.
function slider4_Callback(hObject, eventdata, handles)
if get(handles.fc4,'Value')==1
    set(hObject,'SliderStep',[0.0001 0.1]);
    set(hObject,'Max',20000);
    set(hObject,'Min',20);
    Val4 = round(get(hObject, 'Value'));
    setappdata(hObject,'fcVal4',Val4);
end
if get(handles.g4,'Value')==1
    set(hObject,'SliderStep',[0.01 0.1]);
    set(hObject,'Max',15);
    set(hObject,'Min',-15);
    Val4 = 0.1*round(10*get(hObject, 'Value'));
    setappdata(hObject,'gVal4',Val4);
end
if get(handles.q4,'Value')==1
    set(hObject,'SliderStep',[0.01 0.1]);
    set(hObject,'Max',10);
    set(hObject,'Min',0.1);
    Val4 = 0.1*round(10*get(hObject, 'Value'));
    setappdata(hObject,'qVal4',Val4);
end
set(handles.val4,'String',Val4);
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function slider4_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end

% --- Executes on slider movement.
function slider5_Callback(hObject, eventdata, handles)
if get(handles.type5,'Value')==1
    if get(handles.fc5,'Value')==1
        set(hObject,'SliderStep',[0.0001 0.1]);
        set(hObject,'Max',20000);
        set(hObject,'Min',20);
        Val5 = round(get(hObject, 'Value'));
        setappdata(hObject,'fcVal5',Val5);
    end
    if get(handles.g5,'Value')==1
        set(hObject,'SliderStep',[0.01 0.1]);
        set(hObject,'Max',15);
        set(hObject,'Min',-15);
        Val5 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'gVal5',Val5);
    end
    if get(handles.q5,'Value')==1
        set(hObject,'SliderStep',[0.01 0.1]);
        set(hObject,'Max',15);
        set(hObject,'Min',0.1);
        Val5 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'qVal5',Val5);
    end
elseif (get(handles.type5,'Value'))==2 || (get(handles.type5,'Value'))==3
    if get(handles.fc5,'Value')==1
        set(hObject,'SliderStep',[0.0001 0.1]);
        set(hObject,'Max',18000);
        set(hObject,'Min',25);
        Val5 = round(get(hObject, 'Value'));
        setappdata(hObject,'fcVal5',Val5);
    end
    if get(handles.g5,'Value')==1
        set(hObject,'SliderStep',[0.01 0.1]);
        set(hObject,'Max',15);
        set(hObject,'Min',-15);
        Val5 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'gVal5',Val5);
    end
    elseif (get(handles.type5,'Value'))==4 || (get(handles.type5,'Value'))==5
    if get(handles.fc5,'Value')==1
        set(hObject,'SliderStep',[0.0001 0.1]);
        set(hObject,'Max',20000);
        set(hObject,'Min',20);
        Val5 = round(get(hObject, 'Value'));
        setappdata(hObject,'fcVal5',Val5);
    end
    if get(handles.g5,'Value')==1
        set(hObject,'SliderStep',[0.01 0.1]);
        set(hObject,'Max',100);
        set(hObject,'Min',-15);
        Val5 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'gVal5',Val5);
    end
    if get(handles.q5,'Value')==1
        set(hObject,'SliderStep',[1 1]);
        set(hObject,'Max',4);
        set(hObject,'Min',1);
        Val5 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'qVal5',Val5);
    end
end
set(handles.val5,'String',Val5);
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function slider5_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end

% --- Executes on slider movement.
function slider6_Callback(hObject, eventdata, handles)
if strcmp(get(handles.type6,'String'),'Peak')==1
    if get(handles.fc6,'Value')==1
        set(hObject,'SliderStep',[0.0001 0.1]);
        set(hObject,'Max',20000);
        set(hObject,'Min',20);
        Val6 = round(get(hObject, 'Value'));
        setappdata(hObject,'fcVal6',Val6);
    end
    if get(handles.g6,'Value')==1
        set(hObject,'SliderStep',[0.01 0.1]);
        set(hObject,'Max',15);
        set(hObject,'Min',-15);
        Val6 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'gVal6',Val6);
    end
    if get(handles.q6,'Value')==1
        set(hObject,'SliderStep',[0.01 0.1]);
        set(hObject,'Max',15);
        set(hObject,'Min',0.1);
        Val6 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'qVal6',Val6);
    end
elseif strcmp(get(handles.type6,'String'),'Shelving HP')==1 || strcmp(get(handles.type6,'String'),'Shelving LP')==1
    if get(handles.fc6,'Value')==1
        set(hObject,'SliderStep',[0.0001 0.1]);
        set(hObject,'Max',18000);
        set(hObject,'Min',25);
        Val6 = round(get(hObject, 'Value'));
        setappdata(hObject,'fcVal6',Val6);
    end
    if get(handles.g6,'Value')==1
        set(hObject,'SliderStep',[0.01 0.1]);
        set(hObject,'Max',15);
        set(hObject,'Min',-15);
        Val6 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'gVal6',Val6);
    end
    elseif strcmp(get(handles.type6,'String'),'Lowpass')==1 || strcmp(get(handles.type6,'String'),'Highpass')==1
    if get(handles.fc6,'Value')==1
        set(hObject,'SliderStep',[0.0001 0.1]);
        set(hObject,'Max',20000);
        set(hObject,'Min',20);
        Val6 = round(get(hObject, 'Value'));
        setappdata(hObject,'fcVal6',Val6);
    end
    if get(handles.g6,'Value')==1
        set(hObject,'SliderStep',[0.01 0.1]);
        set(hObject,'Max',100);
        set(hObject,'Min',-15);
        Val6 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'gVal6',Val6);
    end
    if get(handles.q6,'Value')==1
        set(hObject,'SliderStep',[1 1]);
        set(hObject,'Max',4);
        set(hObject,'Min',1);
        Val6 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'qVal6',Val6);
    end
end
set(handles.val6,'String',Val6);
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function slider6_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end

% --- Executes on slider movement.
function slider7_Callback(hObject, eventdata, handles)
if strcmp(get(handles.type7,'String'),'Peak')==1
    if get(handles.fc7,'Value')==1
        set(hObject,'SliderStep',[0.0001 0.1]);
        set(hObject,'Max',20000);
        set(hObject,'Min',20);
        Val7 = round(get(hObject, 'Value'));
        setappdata(hObject,'fcVal7',Val7);
    end
    if get(handles.g7,'Value')==1
        set(hObject,'SliderStep',[0.01 0.1]);
        set(hObject,'Max',15);
        set(hObject,'Min',-15);
        Val7 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'gVal7',Val7);
    end
    if get(handles.q7,'Value')==1
        set(hObject,'SliderStep',[0.01 0.1]);
        set(hObject,'Max',15);
        set(hObject,'Min',0.1);
        Val7 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'qVal7',Val7);
    end
elseif strcmp(get(handles.type7,'String'),'Shelving HP')==1 || strcmp(get(handles.type7,'String'),'Shelving LP')==1
    if get(handles.fc7,'Value')==1
        set(hObject,'SliderStep',[0.0001 0.1]);
        set(hObject,'Max',18000);
        set(hObject,'Min',25);
        Val7 = round(get(hObject, 'Value'));
        setappdata(hObject,'fcVal7',Val7);
    end
    if get(handles.g7,'Value')==1
        set(hObject,'SliderStep',[0.01 0.1]);
        set(hObject,'Max',15);
        set(hObject,'Min',-15);
        Val7 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'gVal7',Val7);
    end
    elseif strcmp(get(handles.type7,'String'),'Lowpass')==1 || strcmp(get(handles.type7,'String'),'Highpass')==1
    if get(handles.fc7,'Value')==1
        set(hObject,'SliderStep',[0.0001 0.1]);
        set(hObject,'Max',20000);
        set(hObject,'Min',20);
        Val7 = round(get(hObject, 'Value'));
        setappdata(hObject,'fcVal7',Val7);
    end
    if get(handles.g7,'Value')==1
        set(hObject,'SliderStep',[0.01 0.1]);
        set(hObject,'Max',100);
        set(hObject,'Min',-15);
        Val7 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'gVal7',Val7);
    end
    if get(handles.q7,'Value')==1
        set(hObject,'SliderStep',[1 1]);
        set(hObject,'Max',4);
        set(hObject,'Min',1);
        Val7 = 0.1*round(10*get(hObject, 'Value'));
        setappdata(hObject,'qVal7',Val7);
    end
end
set(handles.val7,'String',Val7);
calculatePEQ(hObject,handles);


% --- Executes during object creation, after setting all properties.
function slider7_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end

function val1_Callback(hObject, eventdata, handles)
if get(handles.fc1,'Value')==1
    fcVal1 = get(hObject, 'string');
    fcVal1 = str2double(fcVal1);
    if fcVal1 < 20
        fcVal1=20;
    end
    if fcVal1 > 20000
        fcVal1=20000;
    end
    set(hObject,'string',fcVal1);
    set(handles.slider1,'Value',fcVal1);
    setappdata(handles.slider1,'fcVal1',fcVal1);
end
if get(handles.g1,'Value')==1
    gVal1 = get(hObject, 'string');
    gVal1 = str2double(gVal1);
    if gVal1 < -15
        gVal1=-15;
    end
    Gmax=15;
    if gVal1 > Gmax
        gVal1=Gmax;
    end
    set(hObject,'string',gVal1);
    set(handles.slider1,'Value',gVal1)
    setappdata(handles.slider1,'gVal1',gVal1);
end
if get(handles.q1,'Value')==1
    qVal1 = get(hObject, 'string');
    qVal1 = str2double(qVal1);
    if qVal1 < 0.1 
        qVal1=0.1;
    end
    if qVal1 > 10 
        qVal1=10;
    end
    set(hObject,'string',qVal1);
    set(handles.slider1,'Value',qVal1)
    setappdata(handles.slider1,'qVal1',qVal1);
end
calculatePEQ(hObject,handles);

function val2_Callback(hObject, eventdata, handles)
if get(handles.fc2,'Value')==1
    fcVal2 = get(hObject, 'string');
    fcVal2 = str2double(fcVal2);
    if fcVal2 < 20
        fcVal2=20;
    end
    if fcVal2 > 20000
        fcVal2=20000;
    end
    set(hObject,'string',fcVal2);
    set(handles.slider2,'Value',fcVal2)
    setappdata(handles.slider2,'fcVal2',fcVal2);
end
if get(handles.g2,'Value')==1
    gVal2 = get(hObject, 'string');
    gVal2 = str2double(gVal2);
    if gVal2 < -15
        gVal2=-15;
    end
    Gmax=15;
    if gVal2 > Gmax
        gVal2=Gmax;
    end
    set(hObject,'string',gVal2);
    set(handles.slider2,'Value',gVal2)
    setappdata(handles.slider2,'gVal2',gVal2);
end
if get(handles.q2,'Value')==1
    qVal2 = get(hObject, 'string');
    qVal2 = str2double(qVal2);
    if qVal2 < 0.1 
        qVal2=0.1;
    end
    if qVal2 > 10 
        qVal2=10;
    end
    set(hObject,'string',qVal2);
    set(handles.slider2,'Value',qVal2)
    setappdata(handles.slider2,'qVal2',qVal2);
end
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function val2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function val3_Callback(hObject, eventdata, handles)
if get(handles.fc3,'Value')==1
    fcVal3 = get(hObject, 'string');
    fcVal3 = str2double(fcVal3);
    if fcVal3 < 20
        fcVal3=20;
    end
    if fcVal3 > 20000
        fcVal3=20000;
    end
    set(hObject,'string',fcVal3);
    set(handles.slider3,'Value',fcVal3)
    setappdata(handles.slider3,'fcVal3',fcVal3);
end
if get(handles.g3,'Value')==1
    gVal3 = get(hObject, 'string');
    gVal3 = str2double(gVal3);
    if gVal3 < -15
        gVal3=-15;
    end
    Gmax=15;
    if gVal3 > Gmax
        gVal3=Gmax;
    end
    set(hObject,'string',gVal3);
    set(handles.slider3,'Value',gVal3)
    setappdata(handles.slider3,'gVal3',gVal3);
end
if get(handles.q3,'Value')==1
    qVal3 = get(hObject, 'string');
    qVal3 = str2double(qVal3);
    if qVal3 < 0.1 
        qVal3=0.1;
    end
    if qVal3 > 10 
        qVal3=10;
    end
    set(hObject,'string',qVal3);
    set(handles.slider3,'Value',qVal3)
    setappdata(handles.slider3,'qVal3',qVal3);
end
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function val3_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function val4_Callback(hObject, eventdata, handles)
if get(handles.fc4,'Value')==1
    fcVal4 = get(hObject, 'string');
    fcVal4 = str2double(fcVal4);
    if fcVal4 < 20
        fcVal4=20;
    end
    if fcVal4 > 20000
        fcVal4=20000;
    end
    set(hObject,'string',fcVal4);
    set(handles.slider4,'Value',fcVal4)
    setappdata(handles.slider4,'fcVal4',fcVal4);
end
if get(handles.g4,'Value')==1
    gVal4 = get(hObject, 'string');
    gVal4 = str2double(gVal4);
    if gVal4 < -15
        gVal4=-15;
    end
    Gmax=15;
    if gVal4 > Gmax
        gVal4=Gmax;
    end
    set(hObject,'string',gVal4);
    set(handles.slider4,'Value',gVal4)
    setappdata(handles.slider4,'gVal4',gVal4);
end
if get(handles.q4,'Value')==1
    qVal4 = get(hObject, 'string');
    qVal4 = str2double(qVal4);
    if qVal4 < 0.1 
        qVal4=0.1;
    end
    if qVal4 > 10 
        qVal4=10;
    end
    set(hObject,'string',qVal4);
    set(handles.slider4,'Value',qVal4)
    setappdata(handles.slider4,'qVal4',qVal4);
end
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function val4_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function val5_Callback(hObject, eventdata, handles)
if get(handles.type5,'Value')==1
    if get(handles.fc5,'Value')==1
        fcVal5 = get(hObject, 'string');
        fcVal5 = str2double(fcVal5);
        if fcVal5 < 20
            fcVal5=20;
        end
        if fcVal5 > 20000
            fcVal5=20000;
        end
        set(hObject,'string',fcVal5);
        set(handles.slider5,'Value',fcVal5)
        setappdata(handles.slider5,'fcVal5',fcVal5);
    end
    if get(handles.g5,'Value')==1
        gVal5 = get(hObject, 'string');
        gVal5 = str2double(gVal5);
        if gVal5 < -15
            gVal5=-15;
        end
        Gmax=15;
        if gVal5 > Gmax
            gVal5=Gmax;
        end
        set(hObject,'string',gVal5);
        set(handles.slider5,'Value',gVal5)
        setappdata(handles.slider5,'gVal5',gVal5);
    end
    if get(handles.q5,'Value')==1
        qVal5 = get(hObject, 'string');
        qVal5 = str2double(qVal5);
        if qVal5 < 0.1 
            qVal5=0.1;
        end
        if qVal5> 10 
            qVal5=10;
        end
        set(hObject,'string',qVal5);
        set(handles.slider5,'Value',qVal5)
        setappdata(handles.slider5,'qVal5',qVal5);
    end
elseif get(handles.type5,'Value')==2 || get(handles.type5,'Value')==3
    if get(handles.fc5,'Value')==1
        fcVal5 = get(hObject, 'string');
        fcVal5 = str2double(fcVal5);
        if fcVal5 < 25
            fcVal5=25;
        end
        if fcVal5 > 18000
            fcVal5=18000;
        end
        set(hObject,'string',fcVal5);
        set(handles.slider5,'Value',fcVal5)
        setappdata(handles.slider5,'fcVal5',fcVal5);
    end
    if get(handles.g5,'Value')==1
        gVal5 = get(hObject, 'string');
        gVal5 = str2double(gVal5);
        if gVal5 < -15
            gVal5=-15;
        end
        Gmax=15;
        if gVal5 > Gmax
            gVal5=Gmax;
        end
        set(hObject,'string',gVal5);
        set(handles.slider5,'Value',gVal5)
        setappdata(handles.slider5,'gVal5',gVal5);
    end
elseif get(handles.type5,'Value')==4 || get(handles.type5,'Value')==5
    if get(handles.fc5,'Value')==1
        fcVal5 = get(hObject, 'string');
        fcVal5 = str2double(fcVal5);
        if fcVal5 < 20
            fcVal5=20;
        end
        if fcVal5 > 20000
            fcVal5=20000;
        end
        set(hObject,'string',fcVal5);
        set(handles.slider5,'Value',fcVal5)
        setappdata(handles.slider5,'fcVal5',fcVal5);
    end
    if get(handles.g5,'Value')==1
        gVal5 = get(hObject, 'string');
        gVal5 = str2double(gVal5);
        if gVal5 < -15
            gVal5=-15;
        end
        if gVal5 > 100
            gVal5=100;
        end
        set(hObject,'string',gVal5);
        set(handles.slider5,'Value',gVal5)
        setappdata(handles.slider5,'gVal5',gVal5);
    end
    if get(handles.q5,'Value')==1
        qVal5 = get(hObject, 'string');
        qVal5 = str2double(qVal5);
        if qVal5 < 1
            qVal5=1;
        end
        if qVal5 > 4
            qVal5=4;
        end
        set(hObject,'string',qVal5);
        set(handles.slider5,'Value',qVal5)
        setappdata(handles.slider5,'qVal5',round(qVal5));
    end
end
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function val5_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function val6_Callback(hObject, eventdata, handles)
if get(handles.type6,'Value')==1
    if get(handles.fc6,'Value')==1
        fcVal6 = get(hObject, 'string');
        fcVal6 = str2double(fcVal6);
        if fcVal6 < 20
            fcVal6=20;
        end
        if fcVal6 > 20000
            fcVal6=20000;
        end
        set(hObject,'string',fcVal6);
        set(handles.slider6,'Value',fcVal6)
        setappdata(handles.slider6,'fcVal6',fcVal6);
    end
    if get(handles.g6,'Value')==1
        gVal6 = get(hObject, 'string');
        gVal6 = str2double(gVal6);
        if gVal6 < -15
            gVal6=-15;
        end
        Gmax=15;
        if gVal6 > Gmax
            gVal6=Gmax;
        end
        set(hObject,'string',gVal6);
        set(handles.slider6,'Value',gVal6)
        setappdata(handles.slider6,'gVal6',gVal6);
    end
    if get(handles.q6,'Value')==1
        qVal6 = get(hObject, 'string');
        qVal6 = str2double(qVal6);
        if qVal6 < 0.1 
            qVal6=0.1;
        end
        if qVal6> 10 
            qVal6=10;
        end
        set(hObject,'string',qVal6);
        set(handles.slider6,'Value',qVal6)
        setappdata(handles.slider6,'qVal6',qVal6);
    end
elseif get(handles.type6,'Value')==2 || get(handles.type6,'Value')==3
    if get(handles.fc6,'Value')==1
        fcVal6 = get(hObject, 'string');
        fcVal6 = str2double(fcVal6);
        if fcVal6 < 25
            fcVal6=25;
        end
        if fcVal6 > 18000
            fcVal6=18000;
        end
        set(hObject,'string',fcVal6);
        set(handles.slider6,'Value',fcVal6)
        setappdata(handles.slider6,'fcVal6',fcVal6);
    end
    if get(handles.g6,'Value')==1
        gVal6 = get(hObject, 'string');
        gVal6 = str2double(gVal6);
        if gVal6 < -15
            gVal6=-15;
        end
        Gmax=15;
        if gVal6 > Gmax
            gVal6=Gmax;
        end
        set(hObject,'string',gVal6);
        set(handles.slider6,'Value',gVal6)
        setappdata(handles.slider6,'gVal6',gVal6);
    end
elseif get(handles.type6,'Value')==4 || get(handles.type6,'Value')==5
    if get(handles.fc6,'Value')==1
        fcVal6 = get(hObject, 'string');
        fcVal6 = str2double(fcVal6);
        if fcVal6 < 20
            fcVal6=20;
        end
        if fcVal6 > 20000
            fcVal6=20000;
        end
        set(hObject,'string',fcVal6);
        set(handles.slider6,'Value',fcVal6)
        setappdata(handles.slider6,'fcVal6',fcVal6);
    end
    if get(handles.g6,'Value')==1
        gVal6 = get(hObject, 'string');
        gVal6 = str2double(gVal6);
        if gVal6 < -15
            gVal6=-15;
        end
        if gVal6 > 100
            gVal6=100;
        end
        set(hObject,'string',gVal6);
        set(handles.slider6,'Value',gVal6)
        setappdata(handles.slider6,'gVal6',gVal6);
    end
    if get(handles.q6,'Value')==1
        qVal6 = get(hObject, 'string');
        qVal6 = str2double(qVal6);
        if qVal6 < 1
            qVal6=1;
        end
        if qVal6 > 4
            qVal6=4;
        end
        set(hObject,'string',qVal6);
        set(handles.slider6,'Value',qVal6)
        setappdata(handles.slider6,'qVal6',round(qVal6));
    end
end
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function val6_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

function val7_Callback(hObject, eventdata, handles)
if get(handles.type7,'Value')==1
    if get(handles.fc7,'Value')==1
        fcVal7 = get(hObject, 'string');
        fcVal7 = str2double(fcVal7);
        if fcVal7 < 20
            fcVal7=20;
        end
        if fcVal7 > 20000
            fcVal7=20000;
        end
        set(hObject,'string',fcVal7);
        set(handles.slider7,'Value',fcVal7)
        setappdata(handles.slider7,'fcVal7',fcVal7);
    end
    if get(handles.g7,'Value')==1
        gVal7 = get(hObject, 'string');
        gVal7 = str2double(gVal7);
        if gVal7 < -15
            gVal7=-15;
        end
        Gmax=15;
        if gVal7 > Gmax
            gVal7=Gmax;
        end
        set(hObject,'string',gVal7);
        set(handles.slider7,'Value',gVal7)
        setappdata(handles.slider7,'gVal7',gVal7);
    end
    if get(handles.q7,'Value')==1
        qVal7 = get(hObject, 'string');
        qVal7 = str2double(qVal7);
        if qVal7 < 0.1 
            qVal7=0.1;
        end
        if qVal7> 10 
            qVal7=10;
        end
        set(hObject,'string',qVal7);
        set(handles.slider7,'Value',qVal7)
        setappdata(handles.slider7,'qVal7',qVal7);
    end
elseif get(handles.type7,'Value')==2 || get(handles.type7,'Value')==3
    if get(handles.fc7,'Value')==1
        fcVal7 = get(hObject, 'string');
        fcVal7 = str2double(fcVal7);
        if fcVal7 < 25
            fcVal7=25;
        end
        if fcVal7 > 18000
            fcVal7=18000;
        end
        set(hObject,'string',fcVal7);
        set(handles.slider7,'Value',fcVal7)
        setappdata(handles.slider7,'fcVal7',fcVal7);
    end
    if get(handles.g7,'Value')==1
        gVal7 = get(hObject, 'string');
        gVal7 = str2double(gVal7);
        if gVal7 < -15
            gVal7=-15;
        end
        Gmax=15;
        if gVal7 > Gmax
            gVal7=Gmax;
        end
        set(hObject,'string',gVal7);
        set(handles.slider7,'Value',gVal7)
        setappdata(handles.slider7,'gVal7',gVal7);
    end
elseif get(handles.type7,'Value')==4 || get(handles.type7,'Value')==5
    if get(handles.fc7,'Value')==1
        fcVal7 = get(hObject, 'string');
        fcVal7 = str2double(fcVal7);
        if fcVal7 < 20
            fcVal7=20;
        end
        if fcVal7 > 20000
            fcVal7=20000;
        end
        set(hObject,'string',fcVal7);
        set(handles.slider7,'Value',fcVal7)
        setappdata(handles.slider7,'fcVal7',fcVal7);
    end
    if get(handles.g7,'Value')==1
        gVal7 = get(hObject, 'string');
        gVal7 = str2double(gVal7);
        if gVal7 < -15
            gVal7=-15;
        end
        if gVal7 > 15
            gVal7=15;
        end
        set(hObject,'string',gVal7);
        set(handles.slider7,'Value',gVal7)
        setappdata(handles.slider7,'gVal7',gVal7);
    end
    if get(handles.q7,'Value')==1
        qVal7 = get(hObject, 'string');
        qVal7 = str2double(qVal7);
        if qVal7 < 1
            qVal7=1;
        end
        if qVal7 > 4
            qVal7=4;
        end
        set(hObject,'string',qVal7);
        set(handles.slider7,'Value',qVal7)
        setappdata(handles.slider7,'qVal7',round(qVal7));
    end
end
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function val7_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

% --- Executes on button press in eq1.
function eq1_Callback(hObject, eventdata, handles)
calculatePEQ(hObject,handles);

% --- Executes on button press in eq2.
function eq2_Callback(hObject, eventdata, handles)
calculatePEQ(hObject,handles);

% --- Executes on button press in eq3.
function eq3_Callback(hObject, eventdata, handles)
calculatePEQ(hObject,handles);

% --- Executes on button press in eq4.
function eq4_Callback(hObject, eventdata, handles)
calculatePEQ(hObject,handles);

% --- Executes on button press in eq5.
function eq5_Callback(hObject, eventdata, handles)
calculatePEQ(hObject,handles);

% --- Executes on button press in eq6.
function eq6_Callback(hObject, eventdata, handles)
calculatePEQ(hObject,handles);

% --- Executes on button press in eq7.
function eq7_Callback(hObject, eventdata, handles)
calculatePEQ(hObject,handles);


% --- Executes on button press in close.
function close_Callback(hObject, eventdata, handles)
button = questdlg('Store filter?' );
if strcmp(button,'No')==1
    close gcf;
end
if strcmp(button,'Yes')==1
    store_Callback(hObject, eventdata, handles);
    set(gcf,'Name','ParametricEQ');
    close ParametricEQ;
end

% --- Executes on button press in store.
function store_Callback(hObject, eventdata, handles)
Hd_peq=getappdata(hObject,'Hd_peq');
prompt = {'Enter name for parametric equalizer :'};
dlg_title = 'Name';
num_lines=1;
def = {'PEQ'};
newname = inputdlg(prompt,dlg_title,num_lines,def);
if isempty(newname)==0
    newname=cell2mat(newname);
    assignin('base',newname,Hd_peq);
end

% --- Executes on button press in fc1.
function fc1_Callback(hObject, eventdata, handles)
fcval1=getappdata(handles.slider1,'fcVal1');
set(handles.slider1,'Max',20000);
set(handles.slider1,'Min',20);
set(handles.unit1,'String','Hz');
set(handles.slider1,'Value',fcval1);
set(handles.val1,'string',round(fcval1));

% --- Executes on button press in fc2.
function fc2_Callback(hObject, eventdata, handles)
set(handles.slider2,'Max',20000);
set(handles.slider2,'Min',20);
set(handles.unit2,'String','Hz');
fcval=getappdata(handles.slider2,'fcVal2');
set(handles.slider2,'Value',fcval);
set(handles.val2,'string',round(fcval));

% --- Executes on button press in fc3.
function fc3_Callback(hObject, eventdata, handles)
set(handles.slider3,'Max',20000);
set(handles.slider3,'Min',20);
set(handles.unit3,'String','Hz');
fcval=getappdata(handles.slider3,'fcVal3');
set(handles.slider3,'Value',fcval);
set(handles.val3,'string',round(fcval));

% --- Executes on button press in fc4.
function fc4_Callback(hObject, eventdata, handles)
set(handles.slider4,'Max',20000);
set(handles.slider4,'Min',20);
set(handles.unit4,'String','Hz');
fcval=getappdata(handles.slider4,'fcVal4');
set(handles.slider4,'Value',fcval);
set(handles.val4,'string',round(fcval));

% --- Executes on button press in fc5.
function fc5_Callback(hObject, eventdata, handles)
if get(handles.type5,'Value')==1 || get(handles.type5,'Value')==4 || get(handles.type5,'Value')==5
    set(handles.slider5,'Max',20000);
    set(handles.slider5,'Min',20);
    set(handles.unit5,'String','Hz');
    fcval=getappdata(handles.slider5,'fcVal5');
    set(handles.slider5,'Value',fcval);
    set(handles.val5,'string',round(fcval));
elseif get(handles.type5,'Value')==2 || get(handles.type5,'Value')==3
    set(handles.slider5,'Max',18000);
    set(handles.slider5,'Min',25);
    set(handles.unit5,'String','Hz');
    fcval=getappdata(handles.slider5,'fcVal5');
    set(handles.slider5,'Value',fcval);
    set(handles.val5,'string',round(fcval));
end

% --- Executes on button press in fc6.
function fc6_Callback(hObject, eventdata, handles)
if get(handles.type6,'Value')==1 || get(handles.type6,'Value')==4 || get(handles.type6,'Value')==5
    set(handles.slider6,'Max',20000);
    set(handles.slider6,'Min',20);
    set(handles.unit6,'String','Hz');
    fcval=getappdata(handles.slider6,'fcVal6');
    set(handles.slider6,'Value',fcval);
    set(handles.val6,'string',round(fcval));
elseif get(handles.type6,'Value')==2 || get(handles.type6,'Value')==5
    set(handles.slider6,'Max',18000);
    set(handles.slider6,'Min',25);
    set(handles.unit6,'String','Hz');
    fcval=getappdata(handles.slider6,'fcVal6');
    set(handles.slider6,'Value',fcval);
    set(handles.val6,'string',round(fcval));
end

% --- Executes on button press in fc7.
function fc7_Callback(hObject, eventdata, handles)
if get(handles.type7,'Value')==1 || get(handles.type7,'Value')==4 || get(handles.type7,'Value')==5
    set(handles.slider7,'Max',20000);
    set(handles.slider7,'Min',20);
    set(handles.unit7,'String','Hz');
    fcval=getappdata(handles.slider7,'fcVal7');
    set(handles.slider7,'Value',fcval);
    set(handles.val7,'string',round(fcval));
elseif get(handles.type7,'Value')==2 || get(handles.type7,'Value')==3
    set(handles.slider7,'Max',18000);
    set(handles.slider7,'Min',25);
    set(handles.unit7,'String','Hz');
    fcval=getappdata(handles.slider7,'fcVal7');
    set(handles.slider7,'Value',fcval);
    set(handles.val7,'string',round(fcval));
end

% --- Executes on button press in g1.
function g1_Callback(hObject, eventdata, handles)
gval1=getappdata(handles.slider1,'gVal1');
set(handles.slider1,'Value',15);
set(handles.slider1,'Max',15);
set(handles.slider1,'Min',-15);
set(handles.unit1,'String','dB');
set(handles.slider1,'Value',gval1);
set(handles.val1,'string',0.1*round(10*gval1));

% --- Executes on button press in g2.
function g2_Callback(hObject, eventdata, handles)
gval2=getappdata(handles.slider2,'gVal2');
set(handles.slider2,'Max',15);
set(handles.slider2,'Min',-15);
set(handles.unit2,'String','dB');
set(handles.slider2,'Value',gval2);
set(handles.val2,'string',0.1*round(10*gval2));

% --- Executes on button press in g3.
function g3_Callback(hObject, eventdata, handles)
gval3=getappdata(handles.slider3,'gVal3');
set(handles.slider3,'Max',15);
set(handles.slider3,'Min',-15);
set(handles.unit3,'String','dB');
set(handles.slider3,'Value',gval3);
set(handles.val3,'string',0.1*round(10*gval3));

% --- Executes on button press in g4.
function g4_Callback(hObject, eventdata, handles)
gval4=getappdata(handles.slider4,'gVal4');
set(handles.slider4,'Max',15);
set(handles.slider4,'Min',-15);
set(handles.unit4,'String','dB');
set(handles.slider4,'Value',gval4);
set(handles.val4,'string',0.1*round(10*gval4));

% --- Executes on button press in g5.
function g5_Callback(hObject, eventdata, handles)
if get(handles.type5,'Value')==1
    gval5=getappdata(handles.slider5,'gVal5');
    set(handles.slider5,'Max',15);
    set(handles.slider5,'Min',-15);
    set(handles.unit5,'String','dB');
    set(handles.slider5,'Value',gval5);
    set(handles.val5,'string',0.1*round(10*gval5));
elseif get(handles.type5,'Value')==2 || get(handles.type5,'Value')==3
    gval5=getappdata(handles.slider5,'gVal5');
    set(handles.slider5,'Max',15);
    set(handles.slider5,'Min',-15);
    set(handles.unit5,'String','dB');
    set(handles.slider5,'Value',gval5);
    set(handles.val5,'string',0.1*round(10*gval5));
elseif get(handles.type5,'Value')==4 || get(handles.type5,'Value')==5  
    gval5=getappdata(handles.slider5,'gVal5');
    set(handles.slider5,'Max',15);
    set(handles.slider5,'Min',-15);
    set(handles.unit5,'String','dB');
    set(handles.slider5,'Value',gval5);
    set(handles.val5,'string',0.1*round(10*gval5));
end

% --- Executes on button press in g6.
function g6_Callback(hObject, eventdata, handles)
if get(handles.type6,'Value')==1
    gval6=getappdata(handles.slider6,'gVal6');
    set(handles.slider6,'Max',15);
    set(handles.slider6,'Min',-15);
    set(handles.unit6,'String','dB');
    set(handles.slider6,'Value',gval6);
    set(handles.val6,'string',0.1*round(10*gval6));
elseif get(handles.type6,'Value')==2 || get(handles.type6,'Value')==3  
    gval6=getappdata(handles.slider6,'gVal6');
    set(handles.slider6,'Max',15);
    set(handles.slider6,'Min',-15);
    set(handles.unit6,'String','dB');
    set(handles.slider6,'Value',gval6);
    set(handles.val6,'string',0.1*round(10*gval6));
elseif get(handles.type6,'Value')==4 || get(handles.type6,'Value')==5
    gval6=getappdata(handles.slider6,'gVal6');
    set(handles.slider6,'Max',15);
    set(handles.slider6,'Min',-15);
    set(handles.unit6,'String','dB');
    set(handles.slider6,'Value',gval6);
    set(handles.val6,'string',0.1*round(10*gval6));
end

% --- Executes on button press in g7.
function g7_Callback(hObject, eventdata, handles)
if get(handles.type7,'Value')==1
    gval7=getappdata(handles.slider7,'gVal7');
    set(handles.slider7,'Max',15);
    set(handles.slider7,'Min',-15);
    set(handles.unit7,'String','dB');
    set(handles.slider7,'Value',gval7);
    set(handles.val7,'string',0.1*round(10*gval7));
elseif get(handles.type7,'Value')==2 || get(handles.type7,'Value')==3
    gval7=getappdata(handles.slider7,'gVal7');
    set(handles.slider7,'Max',15);
    set(handles.slider7,'Min',-15);
    set(handles.unit7,'String','dB');
    set(handles.slider7,'Value',gval7);
    set(handles.val7,'string',0.1*round(10*gval7));
elseif get(handles.type7,'Value')==4 || sget(handles.type7,'Value')==5 
    gval7=getappdata(handles.slider7,'gVal7');
    set(handles.slider7,'Max',15);
    set(handles.slider7,'Min',-15);
    set(handles.unit7,'String','dB');
    set(handles.slider7,'Value',gval7);
    set(handles.val7,'string',0.1*round(10*gval7));
end

% --- Executes on button press in q1.
function q1_Callback(hObject, eventdata, handles)
qval1=getappdata(handles.slider1,'qVal1');
set(handles.slider1,'Max',10);
set(handles.slider1,'Min',0.1);
set(handles.unit1,'String','');
set(handles.slider1,'Value',qval1);
set(handles.val1,'string',qval1);

% --- Executes on button press in q2.
function q2_Callback(hObject, eventdata, handles)
set(handles.slider2,'Max',10);
set(handles.slider2,'Min',0.1);
set(handles.unit2,'String','');
qval2=getappdata(handles.slider2,'qVal2');
set(handles.slider2,'Value',qval2);
set(handles.val2,'string',qval2);

% --- Executes on button press in q3.
function q3_Callback(hObject, eventdata, handles)
set(handles.slider3,'Max',10);
set(handles.slider3,'Min',0.1);
set(handles.unit3,'String','');
qval3=getappdata(handles.slider3,'qVal3');
set(handles.slider3,'Value',qval3);
set(handles.val3,'string',qval3);

% --- Executes on button press in q4.
function q4_Callback(hObject, eventdata, handles)
set(handles.slider4,'Max',10);
set(handles.slider4,'Min',0.1);
set(handles.unit4,'String','');
qval4=getappdata(handles.slider4,'qVal4');
set(handles.slider4,'Value',qval4);
set(handles.val4,'string',qval4);

% --- Executes on button press in q5.
function q5_Callback(hObject, eventdata, handles)
if get(handles.type5,'Value')==1
    set(hObject,'String','Q');
    qval5=getappdata(handles.slider5,'qVal5');
    set(handles.slider5,'Max',10);
    set(handles.slider5,'Min',0.1);
    set(handles.unit5,'String','');
    set(handles.slider5,'Value',qval5);
    set(handles.val5,'string',0.1*round(10*qval5));
elseif get(handles.type5,'Value')==4 || get(handles.type5,'Value')==5
    set(hObject,'String','N');
    qval5=getappdata(handles.slider5,'qVal5');
    if qval5 < 1
        qval5=1;
    elseif qval5 > 4
        qval5=4;
    end
    set(hObject,'SliderStep',[1 1]);
    set(handles.slider5,'Max',4);
    set(handles.slider5,'Min',1);
    set(handles.unit5,'String','');
    set(handles.slider5,'Value',round(qval5));
    set(handles.val5,'string',round(qval5));
end

% --- Executes on button press in q6.
function q6_Callback(hObject, eventdata, handles)
if get(handles.type6,'Value')==1
    set(hObject,'String','Q');
    qval6=getappdata(handles.slider6,'qVal6');
    set(handles.slider6,'Max',10);
    set(handles.slider6,'Min',0.1);
    set(handles.unit6,'String','');
    set(handles.slider6,'Value',qval6);
    set(handles.val6,'string',0.1*round(10*qval6));
elseif get(handles.type6,'Value')==4 || get(handles.type6,'Value')==5
    set(hObject,'String','N');
    qval6=getappdata(handles.slider6,'qVal6');
    if qval6 < 1
        qval6=1;
    elseif qval6 > 4
        qval6=4;
    end
    set(hObject,'SliderStep',[1 1]);
    set(handles.slider6,'Max',4);
    set(handles.slider6,'Min',1);
    set(handles.unit6,'String','');
    set(handles.slider6,'Value',round(qval6));
    set(handles.val6,'string',round(qval6));
end

% --- Executes on button press in q7.
function q7_Callback(hObject, eventdata, handles)
if get(handles.type7,'Value')==1
    set(hObject,'String','Q');
    qval7=getappdata(handles.slider7,'qVal7');
    set(handles.slider7,'Max',10);
    set(handles.slider7,'Min',0.1);
    set(handles.unit7,'String','');
    set(handles.slider7,'Value',qval7);
    set(handles.val7,'string',0.1*round(10*qval7));
elseif get(handles.type7,'Value')==4 || get(handles.type7,'Value')==5
    set(hObject,'String','N');
    qval7=getappdata(handles.slider7,'qVal7');
    if qval7 < 1
        qval7=1;
    elseif qval7 > 4
        qval7=4;
    end
    set(hObject,'SliderStep',[1 1]);
    set(handles.slider7,'Max',4);
    set(handles.slider7,'Min',1);
    set(handles.unit7,'String','');
    set(handles.slider7,'Value',round(qval7));
    set(handles.val7,'string',round(qval7));
end


function calculatePEQ(hObject,handles)
cla;

fc1=getappdata(handles.slider1,'fcVal1');
g1=getappdata(handles.slider1,'gVal1');
q1=getappdata(handles.slider1,'qVal1');
if get(handles.eq1,'Value')==0
    g1=0;
end
Hd1=peakingEQ(fc1,g1,q1);

fc2=getappdata(handles.slider2,'fcVal2');
g2=getappdata(handles.slider2,'gVal2');
q2=getappdata(handles.slider2,'qVal2');
if get(handles.eq2,'Value')==0
    g2=0;
end
Hd2=peakingEQ(fc2,g2,q2);

fc3=getappdata(handles.slider3,'fcVal3');
g3=getappdata(handles.slider3,'gVal3');
q3=getappdata(handles.slider3,'qVal3');
if get(handles.eq3,'Value')==0
    g3=0;
end
Hd3=peakingEQ(fc3,g3,q3);

fc4=getappdata(handles.slider4,'fcVal4');
g4=getappdata(handles.slider4,'gVal4');
q4=getappdata(handles.slider4,'qVal4');
if get(handles.eq4,'Value')==0
    g4=0;
end
Hd4=peakingEQ(fc4,g4,q4);

fc5=getappdata(handles.slider5,'fcVal5');
g5=getappdata(handles.slider5,'gVal5');
q5=getappdata(handles.slider5,'qVal5');
if get(handles.type5,'Value')==1
    Hd5=peakingEQ(fc5,g5,q5);
elseif get(handles.type5,'Value')==2
    Hd5=shelvingEQ(fc5,g5,'LP');
elseif get(handles.type5,'Value')==3
    Hd5=shelvingEQ(fc5,g5,'HP');
elseif get(handles.type5,'Value')==4
    Hd5=lowpassEQ(fc5,g5,q5);
elseif get(handles.type5,'Value')==5
    Hd5=highpassEQ(fc5,g5,q5);
end
if get(handles.eq5,'Value')==0
    g5=0;
    Hd5=peakingEQ(fc5,g5,q5);
end

fc6=getappdata(handles.slider6,'fcVal6');
g6=getappdata(handles.slider6,'gVal6');
q6=getappdata(handles.slider6,'qVal6');
if get(handles.type6,'Value')==1
    Hd6=peakingEQ(fc6,g6,q6);
elseif get(handles.type6,'Value')==2
    Hd6=shelvingEQ(fc6,g6,'LP');
elseif get(handles.type6,'Value')==3
    Hd6=shelvingEQ(fc6,g6,'HP');
elseif get(handles.type6,'Value')==4
    Hd6=lowpassEQ(fc6,g6,q6);
elseif get(handles.type6,'Value')==5
    Hd6=highpassEQ(fc6,g6,q6);
end
if get(handles.eq6,'Value')==0
    g6=0;
    Hd6=peakingEQ(fc6,g6,q6);
end

fc7=getappdata(handles.slider7,'fcVal7');
g7=getappdata(handles.slider7,'gVal7');
q7=getappdata(handles.slider7,'qVal7');
if get(handles.type7,'Value')==1
    Hd7=peakingEQ(fc7,g7,q7);
elseif get(handles.type7,'Value')==2
    Hd7=shelvingEQ(fc7,g7,'LP');
elseif get(handles.type7,'Value')==3
    Hd7=shelvingEQ(fc7,g7,'HP');
elseif get(handles.type7,'Value')==4
    Hd7=lowpassEQ(fc7,g7,q7);
elseif get(handles.type7,'Value')==5
    Hd7=highpassEQ(fc7,g7,q7);
end
if get(handles.eq7,'Value')==0
    g7=0;
    Hd7=peakingEQ(fc7,g7,q7);
end

Hd_peq=dfilt.cascade(Hd1,Hd2,Hd3,Hd4,Hd5,Hd6,Hd7);
setappdata(handles.store,'Hd_peq',Hd_peq);

L=4096;
H=20*log10(abs(fft(filter(Hd_peq,vertcat(1,zeros(L-1,1))),L)));
f=0:44100/(L-1):22050;

axes(handles.axes);
plot(f,H(1:end/2),'lineWidth',2,'Color',[0 0 1]);
set(get(gca,'YLabel'),'String','amplitude / dB','FontSize',10,'FontWeight','bold')
set(get(gca,'XLabel'),'String','frequency / Hz','FontSize',10,'FontWeight','bold')
set(handles.axes,...
'FontWeight','bold',...
'XGrid','on',...
'XMinorGrid','on',...
'XTick',[32,63,125,250,500,1000,2000,4000,8000,16000],...
'XTickLabel',{'32','63','125','250','500','1k','2k','4k','8k','16k'},...
'XScale','log','YGrid','on')
y=getappdata(handles.yup,'y');
axis([32 16000 -y y]);
hold on

if get(handles.eq1,'Value')==1
line(fc1,g1, ...
'LineWidth',3,...
'MarkerSize',3,...
'Color',[1 0 0], ...
'Marker','diamond', ...
'Tag','eq1', ...
'LineStyle','none');
text(fc1,g1+2,'1','FontWeight','bold');
end

if get(handles.eq2,'Value')==1
line(fc2,g2, ...
'LineWidth',3,...
'MarkerSize',3,...
'Color',[1 0 0], ...
'Marker','diamond', ...
'Tag','eq2', ...
'LineStyle','none');
text(fc2,g2+2,'2','FontWeight','bold');
end

if get(handles.eq3,'Value')==1
line(fc3,g3, ...
'LineWidth',3,...
'MarkerSize',3,...
'Color',[1 0 0], ...
'Marker','diamond', ...
'Tag','eq3', ...
'LineStyle','none');
text(fc3,g3+2,'3','FontWeight','bold');
end

if get(handles.eq4,'Value')==1
line(fc4,g4, ...
'LineWidth',3,...
'MarkerSize',3,...
'Color',[1 0 0], ...
'Marker','diamond', ...
'Tag','eq4', ...
'LineStyle','none');
text(fc4,g4+2,'4','FontWeight','bold');
end

if get(handles.eq5,'Value')==1
line(fc5,g5, ...
'LineWidth',3,...
'MarkerSize',3,...
'Color',[1 0 0], ...
'Marker','diamond', ...
'Tag','eq5', ...
'LineStyle','none');
text(fc5,g5+2,'5','FontWeight','bold');
end

if get(handles.eq6,'Value')==1
line(fc6,g6, ...
'LineWidth',3,...
'MarkerSize',3,...
'Color',[1 0 0], ...
'Marker','diamond', ...
'Tag','eq6', ...
'LineStyle','none');
text(fc6,g6+2,'6','FontWeight','bold');
end

if get(handles.eq7,'Value')==1
line(fc7,g7, ...
'LineWidth',3,...
'MarkerSize',3,...
'Color',[1 0 0], ...
'Marker','diamond', ...
'Tag','eq7', ...
'LineStyle','none');
text(fc7,g7+2,'7','FontWeight','bold');
end

dots=findobj('Color',[1 0 0],'Marker','diamond');
uistack(dots,'top');

function figure1_WindowButtonDownFcn(hObject, eventdata, handles)
tag = get(gco,'Tag');  
if strcmp(tag,'eq1')
    Gmax=100;
    Gmin=-100;
    setappdata(handles.figure1,'Glim',[Gmin Gmax]);
    setappdata(handles.figure1,'flim',[20 20000]);
    setappdata(hObject,'eq1on',1);
else
    setappdata(hObject,'eq1on',0);
end
if strcmp(tag,'eq2')
    Gmax=100;
    Gmin=-100;
    setappdata(handles.figure1,'Glim',[Gmin Gmax]);
    setappdata(handles.figure1,'flim',[20 20000]);
    setappdata(hObject,'eq2on',1);
else
    setappdata(hObject,'eq2on',0);
end
if strcmp(tag,'eq3')
    Gmax=100;
    Gmin=-100;
    setappdata(handles.figure1,'Glim',[Gmin Gmax]);
    setappdata(handles.figure1,'flim',[20 20000]);
    setappdata(hObject,'eq3on',1);
else
    setappdata(hObject,'eq3on',0);
end
if strcmp(tag,'eq4')
    Gmax=100;
    Gmin=-100;
    setappdata(handles.figure1,'Glim',[Gmin Gmax]);
    setappdata(handles.figure1,'flim',[20 20000]);
    setappdata(hObject,'eq4on',1);
else
    setappdata(hObject,'eq4on',0);
end
if strcmp(tag,'eq5')
    if get(handles.type5,'Value')==1
        Gmax=100;
        Gmin=-100;
        setappdata(handles.figure1,'Glim',[Gmin Gmax]);
        setappdata(handles.figure1,'flim',[20 20000]);
    elseif get(handles.type5,'Value')==2 || get(handles.type5,'Value')==3
        Gmax=100;
        Gmin=-100;
        setappdata(handles.figure1,'Glim',[Gmin Gmax]);
        setappdata(handles.figure1,'flim',[25 18000]);
    elseif get(handles.type5,'Value')==4 || get(handles.type5,'Value')==5
        Gmax=100;
        Gmin=-100;
        setappdata(handles.figure1,'Glim',[Gmin Gmax]);
        setappdata(handles.figure1,'flim',[20 20000]);
    end
    setappdata(hObject,'eq5on',1);
else
    setappdata(hObject,'eq5on',0);
end
if strcmp(tag,'eq6')
    if get(handles.type6,'Value')==1
        Gmax=100;
        Gmin=-100;
        setappdata(handles.figure1,'Glim',[Gmin Gmax]);
        setappdata(handles.figure1,'flim',[20 20000]);
    elseif get(handles.type6,'Value')==2 || get(handles.type6,'Value')==3
        Gmax=100;
        Gmin=-100;
        setappdata(handles.figure1,'Glim',[Gmin Gmax]);
        setappdata(handles.figure1,'flim',[25 18000]);
    elseif get(handles.type6,'Value')==4 || get(handles.type6,'Value')==5
        Gmax=100;
        Gmin=-100;
        setappdata(handles.figure1,'Glim',[Gmin Gmax]);
        setappdata(handles.figure1,'flim',[20 20000]);
    end
    setappdata(hObject,'eq6on',1);
else
    setappdata(hObject,'eq6on',0);
end
if strcmp(tag,'eq7')
    if get(handles.type7,'Value')==1
        Gmax=100;
        Gmin=-100;
        setappdata(handles.figure1,'Glim',[Gmin Gmax]);
        setappdata(handles.figure1,'flim',[20 20000]);
    elseif get(handles.type7,'Value')==2 || get(handles.type7,'Value')==3
        Gmax=100;
        Gmin=-100;
        setappdata(handles.figure1,'Glim',[Gmin Gmax]);
        setappdata(handles.figure1,'flim',[25 18000]);
    elseif get(handles.type7,'Value')==4 || get(handles.type7,'Value')==5
        Gmax=100;
        Gmin=-100;
        setappdata(handles.figure1,'Glim',[Gmin Gmax]);
        setappdata(handles.figure1,'flim',[20 20000]);
    end
    setappdata(hObject,'eq7on',1);
else
    setappdata(hObject,'eq7on',0);
end


% --- Executes on mouse motion over figure - except title and menu.
function figure1_WindowButtonMotionFcn(hObject, eventdata, handles)
if getappdata(hObject,'eq1on')==1
    Glim=getappdata(handles.figure1,'Glim');
    flim=getappdata(handles.figure1,'flim');
    set(gcf,'DoubleBuffer','on');
    cp = get(gca,'CurrentPoint');
    xv = cp(1,1);       
    yv = cp(1,2);
    if yv < Glim(:,1)
        yv=Glim(:,1);
    end
    if yv > Glim(:,2)
        yv=Glim(:,2);
    end
    if xv < flim(:,1)
        xv=flim(:,1);
    end
    if xv > flim(:,2)
        xv=flim(:,2);
    end
    set(gco,'XData',xv,'YData',yv);
    setappdata(handles.slider1,'fcVal1',xv);
    setappdata(handles.slider1,'gVal1',yv);
    if get(handles.fc1,'Value')==1
        set(handles.slider1,'Value',xv);
        set(handles.val1,'String',round(xv));
    elseif get(handles.g1,'Value')==1
        set(handles.slider1,'Value',yv);
        set(handles.val1,'String',0.1*round(10*yv));
    end
    calculatePEQ(hObject,handles);
end

if getappdata(hObject,'eq2on')==1
    Glim=getappdata(handles.figure1,'Glim');
    flim=getappdata(handles.figure1,'flim');
    set(gcf,'DoubleBuffer','on');
    cp = get(gca,'CurrentPoint');
    xv = cp(1,1);       
    yv = cp(1,2);
    if yv < Glim(:,1)
        yv=Glim(:,1);
    end
    if yv > Glim(:,2)
        yv=Glim(:,2);
    end
    if xv < flim(:,1)
        xv=flim(:,1);
    end
    if xv > flim(:,2)
        xv=flim(:,2);
    end
    set(gco,'XData',xv,'YData',yv);
    setappdata(handles.slider2,'fcVal2',xv);
    setappdata(handles.slider2,'gVal2',yv);
    if get(handles.fc2,'Value')==1
        set(handles.slider2,'Value',xv);
        set(handles.val2,'String',round(xv));
    elseif get(handles.g2,'Value')==1
        set(handles.slider2,'Value',yv);
        set(handles.val2,'String',0.1*round(10*yv));
    end
    calculatePEQ(hObject,handles);
end

if getappdata(hObject,'eq3on')==1
    Glim=getappdata(handles.figure1,'Glim');
    flim=getappdata(handles.figure1,'flim');
    set(gcf,'DoubleBuffer','on');
    cp = get(gca,'CurrentPoint');
    xv = cp(1,1);       
    yv = cp(1,2);
    if yv < Glim(:,1)
        yv=Glim(:,1);
    end
    if yv > Glim(:,2)
        yv=Glim(:,2);
    end
    if xv < flim(:,1)
        xv=flim(:,1);
    end
    if xv > flim(:,2)
        xv=flim(:,2);
    end
    set(gco,'XData',xv,'YData',yv);
    setappdata(handles.slider3,'fcVal3',xv);
    setappdata(handles.slider3,'gVal3',yv);
    if get(handles.fc3,'Value')==1
        set(handles.slider3,'Value',xv);
        set(handles.val3,'String',round(xv));
    elseif get(handles.g3,'Value')==1
        set(handles.slider3,'Value',yv);
        set(handles.val3,'String',0.1*round(10*yv));
    end
    calculatePEQ(hObject,handles);
end

if getappdata(hObject,'eq4on')==1
    Glim=getappdata(handles.figure1,'Glim');
    flim=getappdata(handles.figure1,'flim');
    set(gcf,'DoubleBuffer','on');
    cp = get(gca,'CurrentPoint');
    xv = cp(1,1);       
    yv = cp(1,2);
    if yv < Glim(:,1)
        yv=Glim(:,1);
    end
    if yv > Glim(:,2)
        yv=Glim(:,2);
    end
    if xv < flim(:,1)
        xv=flim(:,1);
    end
    if xv > flim(:,2)
        xv=flim(:,2);
    end
    set(gco,'XData',xv,'YData',yv);
    setappdata(handles.slider4,'fcVal4',xv);
    setappdata(handles.slider4,'gVal4',yv);
    if get(handles.fc4,'Value')==1
        set(handles.slider4,'Value',xv);
        set(handles.val4,'String',round(xv));
    elseif get(handles.g4,'Value')==1
        set(handles.slider4,'Value',yv);
        set(handles.val4,'String',0.1*round(10*yv));
    end
    calculatePEQ(hObject,handles);
end

if getappdata(hObject,'eq5on')==1
    Glim=getappdata(handles.figure1,'Glim');
    flim=getappdata(handles.figure1,'flim');
    set(gcf,'DoubleBuffer','on');
    cp = get(gca,'CurrentPoint');
    xv = cp(1,1);       
    yv = cp(1,2);
    if yv < Glim(:,1)
        yv=Glim(:,1);
    end
    if yv > Glim(:,2)
        yv=Glim(:,2);
    end
    if xv < flim(:,1)
        xv=flim(:,1);
    end
    if xv > flim(:,2)
        xv=flim(:,2);
    end
    set(gco,'XData',xv,'YData',yv);
    setappdata(handles.slider5,'fcVal5',xv);
    setappdata(handles.slider5,'gVal5',yv);
    if get(handles.fc5,'Value')==1
        set(handles.slider5,'Value',xv);
        set(handles.val5,'String',round(xv));
    elseif get(handles.g5,'Value')==1
        set(handles.slider5,'Value',yv);
        set(handles.val5,'String',0.1*round(10*yv));
    end
    calculatePEQ(hObject,handles);
end

if getappdata(hObject,'eq6on')==1
    Glim=getappdata(handles.figure1,'Glim');
    flim=getappdata(handles.figure1,'flim');
    set(gcf,'DoubleBuffer','on');
    cp = get(gca,'CurrentPoint');
    xv = cp(1,1);       
    yv = cp(1,2);
    if yv < Glim(:,1)
        yv=Glim(:,1);
    end
    if yv > Glim(:,2)
        yv=Glim(:,2);
    end
    if xv < flim(:,1)
        xv=flim(:,1);
    end
    if xv > flim(:,2)
        xv=flim(:,2);
    end
    set(gco,'XData',xv,'YData',yv);
    setappdata(handles.slider6,'fcVal6',xv);
    setappdata(handles.slider6,'gVal6',yv);
    if get(handles.fc6,'Value')==1
        set(handles.slider6,'Value',xv);
        set(handles.val6,'String',round(xv));
    elseif get(handles.g6,'Value')==1
        set(handles.slider6,'Value',yv);
        set(handles.val6,'String',0.1*round(10*yv));
    end
    calculatePEQ(hObject,handles);
end

if getappdata(hObject,'eq7on')==1
    Glim=getappdata(handles.figure1,'Glim');
    flim=getappdata(handles.figure1,'flim');
    set(gcf,'DoubleBuffer','on');
    cp = get(gca,'CurrentPoint');
    xv = cp(1,1);       
    yv = cp(1,2);
    if yv < Glim(:,1)
        yv=Glim(:,1);
    end
    if yv > Glim(:,2)
        yv=Glim(:,2);
    end
    if xv < flim(:,1)
        xv=flim(:,1);
    end
    if xv > flim(:,2)
        xv=flim(:,2);
    end
    set(gco,'XData',xv,'YData',yv);
    setappdata(handles.slider7,'fcVal7',xv);
    setappdata(handles.slider7,'gVal7',yv);
    if get(handles.fc7,'Value')==1
        set(handles.slider7,'Value',xv);
        set(handles.val7,'String',round(xv));
    elseif get(handles.g7,'Value')==1
        set(handles.slider7,'Value',yv);
        set(handles.val7,'String',0.1*round(10*yv));
    end
    calculatePEQ(hObject,handles);
end


function figure1_WindowButtonUpFcn(hObject, eventdata, handles)
setappdata(handles.figure1,'eq1on',0);
setappdata(handles.figure1,'eq2on',0);
setappdata(handles.figure1,'eq3on',0);
setappdata(handles.figure1,'eq4on',0);
setappdata(handles.figure1,'eq5on',0);
setappdata(handles.figure1,'eq6on',0);
setappdata(handles.figure1,'eq7on',0);



% --- Executes on button press in reset.
function reset_Callback(hObject, eventdata, handles)
setappdata(handles.yup,'y',20);
set(handles.type5,'Value',1);
set(handles.type6,'Value',1);
set(handles.type7,'Value',1);
set(handles.eq1,'Value',1);
set(handles.eq2,'Value',1);
set(handles.eq3,'Value',1);
set(handles.eq4,'Value',1);
set(handles.eq5,'Value',1);
set(handles.eq6,'Value',1);
set(handles.eq7,'Value',0);
set(handles.fc1,'Value',1);
set(handles.fc2,'Value',1);
set(handles.fc3,'Value',1);
set(handles.fc4,'Value',1);
set(handles.fc5,'Value',1);
set(handles.fc6,'Value',1);
set(handles.fc7,'Value',1);
set(handles.slider1,'Max',10);
set(handles.slider2,'Max',10);
set(handles.slider3,'Max',10);
set(handles.slider4,'Max',10);
set(handles.slider5,'Max',10);
set(handles.slider6,'Max',10);
set(handles.slider7,'Max',10);
set(handles.slider1,'Min',0.01);
set(handles.slider2,'Min',0.01);
set(handles.slider3,'Min',0.01);
set(handles.slider4,'Min',0.01);
set(handles.slider5,'Min',0.01);
set(handles.slider6,'Min',0.01);
set(handles.slider7,'Min',0.01);
set(handles.slider1,'Value',3);
set(handles.slider2,'Value',3);
set(handles.slider3,'Value',3);
set(handles.slider4,'Value',3);
set(handles.slider5,'Value',3);
set(handles.slider6,'Value',3);
set(handles.slider7,'Value',3);
set(handles.val1,'String',3);
set(handles.val2,'String',3);
set(handles.val3,'String',3);
set(handles.val4,'String',3);
set(handles.val5,'String',3);
set(handles.val6,'String',3);
set(handles.val7,'String',3);
setappdata(handles.slider1,'fcVal1',63);
setappdata(handles.slider2,'fcVal2',160);
setappdata(handles.slider3,'fcVal3',400);
setappdata(handles.slider4,'fcVal4',1000);
setappdata(handles.slider5,'fcVal5',2500);
setappdata(handles.slider6,'fcVal6',6300);
setappdata(handles.slider7,'fcVal7',100900);
setappdata(handles.slider1,'qVal1',3);
setappdata(handles.slider2,'qVal2',3);
setappdata(handles.slider3,'qVal3',3);
setappdata(handles.slider4,'qVal4',3);
setappdata(handles.slider5,'qVal5',3);
setappdata(handles.slider6,'qVal6',3);
setappdata(handles.slider7,'qVal7',3);
setappdata(handles.slider1,'gVal1',0);
setappdata(handles.slider2,'gVal2',0);
setappdata(handles.slider3,'gVal3',0);
setappdata(handles.slider4,'gVal4',0);
setappdata(handles.slider5,'gVal5',0);
setappdata(handles.slider6,'gVal6',0);
setappdata(handles.slider7,'gVal7',0);
set(handles.q1,'Value',1);
set(handles.q2,'Value',1);
set(handles.q3,'Value',1);
set(handles.q4,'Value',1);
set(handles.q5,'Value',1);
set(handles.q6,'Value',1);
set(handles.q7,'Value',1);
set(handles.fc1,'Value',0);
set(handles.fc2,'Value',0);
set(handles.fc3,'Value',0);
set(handles.fc4,'Value',0);
set(handles.fc5,'Value',0);
set(handles.fc6,'Value',0);
set(handles.fc7,'Value',0);
set(handles.g1,'Value',0);
set(handles.g2,'Value',0);
set(handles.g3,'Value',0);
set(handles.g4,'Value',0);
set(handles.g5,'Value',0);
set(handles.g6,'Value',0);
set(handles.g7,'Value',0);
calculatePEQ(hObject,handles);


% --- Executes on selection change in opensig.
function opensig_Callback(hObject, eventdata, handles)
sig = evalin('base','who');
set(hObject,'String',sig)
set(hObject,'String',sig);
list_entries = get(hObject,'String');
index_selected = get(hObject,'Value');
sig = list_entries{index_selected};
setappdata(hObject,'sig',sig);


% --- Executes during object creation, after setting all properties.
function opensig_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in ok.
function ok_Callback(hObject, eventdata, handles)
Hd_peq=getappdata(handles.store,'Hd_peq');
assignin('base','DesignedParametricEqualizer',Hd_peq);
sig=getappdata(handles.opensig,'sig');
sig_filt=evalin('base',['filter(DesignedParametricEqualizer,' sig ');']);
evalin('base','clear DesignedParametricEqualizer;');

prompt = {'Enter name for filtered signal :'};
dlg_title = 'Name';
num_lines=1;
def = {[sig '_PEQ']};
newname = inputdlg(prompt,dlg_title,num_lines,def);
newname=cell2mat(newname);
assignin('base',newname,sig_filt./max(max(abs(sig_filt))));


% --- Executes on button press in oct.
function oct_Callback(hObject, eventdata, handles)
if get(hObject,'Value')==1
    set(handles.Noct,'Enable','on');
    set(handles.text49,'Enable','on');
else
    set(handles.Noct,'Enable','off');
    set(handles.text49,'Enable','off');
end

data = getappdata(handles.open,'data');
if get(handles.oct,'Value')==1
    noct=get(handles.Noct,'String');
else
    noct='3';
end
L=4096;    
[pX,pXoct]=evalin('base',['averfft_base(' data ',' num2str(L) ',' num2str(L) '/2,50,' noct ');']);
f1=find(pXoct<3,1,'first');
f2=find(pXoct<4,1,'last');
pXoct=pXoct-mean(pXoct(20:465));
norm=mean(pXoct(f1:f2))+1;
pXoct=pXoct-norm;
pX=pX-norm;
if get(handles.oct,'Value')==1
    ref=pXoct;
else
    ref=pX;
end
setappdata(handles.open,'ref',ref);
calculatePEQ(hObject,handles);


% --- Executes on selection change in type5.
function type5_Callback(hObject, eventdata, handles)
if get(hObject,'Value')==2 || get(hObject,'Value')==3   
    set(handles.q5,'Enable','off');
    set(handles.q5,'String','');
    g=getappdata(handles.slider5,'gVal5');
    fc=getappdata(handles.slider5,'fcVal5');
    Gmax=100;
    if g > Gmax
       setappdata(handles.slider5,'gVal5',Gmax);
    elseif fc < 25
        setappdata(handles.slider5,'fcVal5',25);
    elseif fc > 18000
        setappdata(handles.slider5,'fcVal5',18000);
    end
elseif get(hObject,'Value')==1
    set(handles.q5,'Enable','on');
    set(handles.q5,'String','Q');
elseif get(hObject,'Value')==4 || get(hObject,'Value')==5
    set(handles.q5,'Enable','on');
    set(handles.q5,'String','N');
    if getappdata(handles.slider5,'gVal5')>100
        setappdata(handles.slider5,'gVal5',100);
    end
    setappdata(handles.slider5,'qVal5',1);
end
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function type5_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

% --- Executes on selection change in type6.
function type6_Callback(hObject, eventdata, handles)
if get(hObject,'Value')==2 || get(hObject,'Value')==3   
    set(handles.q6,'Enable','off');
    set(handles.q6,'String','');
    g=getappdata(handles.slider6,'gVal6');
    fc=getappdata(handles.slider6,'fcVal6');
    Gmax=100;
    if g > Gmax
       setappdata(handles.slider6,'gVal6',Gmax);
    elseif fc < 25
        setappdata(handles.slider6,'fcVal6',25);
    elseif fc > 18000
        setappdata(handles.slider6,'fcVal6',18000);
    end
elseif get(hObject,'Value')==1
    set(handles.q6,'Enable','on');
    set(handles.q6,'String','Q');
elseif get(hObject,'Value')==4 || get(hObject,'Value')==5
    set(handles.q6,'Enable','on');
    set(handles.q6,'String','N');
    if getappdata(handles.slider6,'gVal6')>100
        setappdata(handles.slider6,'gVal6',100);
    end
    setappdata(handles.slider6,'qVal6',1);
end
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function type6_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

% --- Executes on selection change in type7.
function type7_Callback(hObject, eventdata, handles)
if get(hObject,'Value')==2 || get(hObject,'Value')==3   
    set(handles.q7,'Enable','off');
    set(handles.q7,'String','');
    g=getappdata(handles.slider7,'gVal7');
    fc=getappdata(handles.slider7,'fcVal7');
    Gmax=100;
    if g > Gmax
       setappdata(handles.slider7,'gVal7',Gmax);
    elseif fc < 25
        setappdata(handles.slider7,'fcVal7',25);
    elseif fc > 18000
        setappdata(handles.slider7,'fcVal7',18000);
    end
elseif get(hObject,'Value')==1
    set(handles.q7,'Enable','on');
    set(handles.q7,'String','Q');
elseif get(hObject,'Value')==4 || get(hObject,'Value')==5
    set(handles.q7,'Enable','on');
    set(handles.q7,'String','N');
    if getappdata(handles.slider7,'gVal7')>100
        setappdata(handles.slider7,'gVal7',100);
    end
    setappdata(handles.slider7,'qVal7',1);
end
calculatePEQ(hObject,handles);

% --- Executes during object creation, after setting all properties.
function type7_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in ydwn.
function ydwn_Callback(hObject, eventdata, handles)
y=getappdata(handles.yup,'y')-5;
if y > 0
    setappdata(handles.yup,'y',y);
    calculatePEQ(hObject,handles);
end

% --- Executes on button press in yup.
function yup_Callback(hObject, eventdata, handles)
y=getappdata(handles.yup,'y')+5;
setappdata(handles.yup,'y',y);
calculatePEQ(hObject,handles);